#ifndef INSRSPHEADERRECVHANDLER_H
#define INSRSPHEADERRECVHANDLER_H

#include "RspHeaderRecvHandlerBase.h"

class InsRspHeaderRecvHandler:public RspHeaderRecvHandlerBase
{
public:
	InsRspHeaderRecvHandler():RspHeaderRecvHandlerBase(){}

	~InsRspHeaderRecvHandler(){}

protected:
	virtual void GetRecvInfo(ClientContext &client,SOCKET *recvSock,WSABUF **recvBuffer,OVERLAPPED **recvOvl,HttpResponseHeader **responseHeader);

	virtual ExecuteResultCode OnHeaderReceiveCompleted(ClientContext &client,OVERLAPPED *ovl,HttpResponseHeader &headerData);

	virtual ExecuteResultCode OnRedirectConnect(ClientContext&,OVERLAPPED*,const InsteadHttpUrl&);

	virtual ExecuteResultCode OnExecuteError(ClientContext&,OVERLAPPED*,ExecuteResultCode);

	virtual ExecuteResultCode OnSendResponseHeader(ClientContext&,HttpResponseHeader&);

	virtual ITransHandler* GetNextHandler();

private:
	static log4cplus::Logger log;
};

#endif